System and Method for Historical Diagnosis of Sensor Networks

ABSTRACT

A method of querying a hierarchically organized sensor network, said network being sensor network with a global coordinator node at a top level which receives data from lower level intermediate nodes which are either leader nodes for lower level nodes or sensor nodes, wherein a sensor node i at a lowest level receives a signal Y(i,t) at time t, said method including constructing a sketch S wkt =(S wkt   1 , . . . ,S wkt   n ) for an internal node k from 
     
       
         
           
             
               
                 S 
                 wkt 
                 j 
               
               = 
               
                 
                   ∑ 
                   
                     i 
                     ∈ 
                     
                       LeafDescendents 
                        
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                 
                  
                 
                   
                     ∑ 
                     
                       q 
                       = 
                       1 
                     
                     i 
                   
                    
                   
                     
                       b 
                       wiq 
                     
                     · 
                     
                       r 
                       iq 
                       j 
                     
                   
                 
               
             
             , 
           
         
       
     
     wherein component S wkt   j  is a sketch of a descendent of node k, r it   j  is a random variable associated with each sensor node i and time instant t wherein index j refers to independently drawn instantiations of the random variable, bit b wit  represents a state of sensor node i for signal value w=Y(i,t) at time t, and LeafDescendents(k) are the lowest level sensor nodes under node k, wherein said sketch is adapted for responding to queries regarding a state of said network.

TECHNICAL FIELD

This disclosure is directed to the historical analysis of large sensor networks.

DISCUSSION OF THE RELATED ART

Recent advances in hardware technology have made it feasible to collect large amounts of data from the physical world using small sensor nodes. These sensor nodes have become smaller and cheaper over the years, though they are typically limited by low computational power and memory. In addition, communication is a huge cost on battery power, and therefore limits on battery life can reduce the life time of the sensor network. The large amounts of data collected by the sensor nodes causes monitoring to be challenging from many technological stand points. Sensor nodes have limited local storage, computational power, and battery life, as a result of which it is desirable to minimize the storage, processing and communication from these nodes. The issue is further magnified by the fact that a given network may have millions of sensor nodes and therefore it is expensive to localize all the data at a given global node for analysis both from a storage and communication point of view. A typical monitoring application may determine specific abnormalities at sensor nodes or diagnose local regions of abnormal behavior. In other applications, a user may wish to query the network for specific behavior of the data over arbitrary time horizons. This can be a challenging task if it is not possible to store the voluminous sensor information at different nodes, and if there are limitations on communicating this data to storage locations because of limitations on power consumption.

In general, it is useful to have the flexibility of computing a number of general function on any historical portion of the data stream. This is also a challenging task, because it may be impossible to hold the entire historical data at different sensor nodes under the corresponding storage constraints. A recent technique for compressing historical information in sensor networks is focused on dimensionality reduction of multiple streams with the use of inter-attribute correlations. This method, however, cannot be easily used for arbitrary reconstruction of the data stream (or functions of it) over particular time horizons.

In many applications, sensor nodes may be hierarchically organized with intermediate nodes sending aggregate information about lower level nodes to upper level nodes. Since nodes at lower levels of the hierarchy are more numerous, they will have greater constraints in terms of storage or power consumption. In many cases, the intermediate nodes may also be considerably constrained in resources.

SUMMARY OF THE INVENTION

Exemplary embodiments of the invention as described herein generally include methods and systems for storage-efficient monitoring and diagnosis of sensor networks with the use of sketch based representations. A system and method according to an embodiment of the invention provides a flexible scheme for summary storage of sensor signals in order to effectively deal with the different kinds of tradeoffs. A pyramidal sketch can store the historical signals from different sensors effectively, so that it is able to accurately respond to user queries over different time horizons. A sketch based representation reduces the space requirements while providing worst-case guarantees on general functions computed over the sensor stream. A method according to an embodiment of the invention does not rely on special characteristics of the data stream, and can effectively summarize data streams of the order of hundreds of gigabytes in a few megabytes. In addition, the scheme can accurately reconstruct any historical part of the series and effectively compute general functions on the series.

A method according to an embodiment of the invention can exploit the hierarchy in the sensor network. The storage at intermediate nodes in the hierarchy is designed so that queries at the global level can be resolved at varying levels of accuracy by using sketches which are aggregated across different sensor nodes at upper levels of the hierarchy. While it may not always be possible to maintain detailed sketches at the highest level node because of storage constraints, it is often possible to reconstruct the historical behavior of the sketch at the higher level nodes using this approach. This helps in resolving the query at the higher level nodes without needing the extra communication of pushing queries down to lower level nodes.

A method according to an embodiment of the invention can construct pyramidal sketches which store the entire historical behavior of the sensor readings in an effective way, and is effective in tracking very detailed historical behavior of individual series values, because of the use of a pyramidal time frame technique in combination with the sketch. Experimental results are presented illustrating the effectiveness of an approach.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of a method for sketch construction and query estimation, according to an embodiment of the invention.

FIG. 2 is a flowchart of a method for sketch estimation of step 210 of FIG. 2, according to an embodiment of the invention.

FIG. 3 is a flowchart of a method of query estimation of step 220 of FIG. 2, according to an embodiment of the invention.

FIG. 4 is a flowchart of a method of determining a horizon specific sketch for a particular query of step 410 of FIG. 4, according to an embodiment of the invention.

FIG. 5 is a block diagram of an exemplary computer system for implementing a system for historical analysis of large sensor networks, according to an embodiment of the invention.

FIG. 6 illustrates the storage Requirement of a pyramidal Sketch with increasing series size, according to an embodiment of the invention.

FIG. 7 illustrates an average estimation over a historical horizon using a varying number of sketch components, according to an embodiment of the invention.

FIG. 8 illustrates an abnormal signal estimation over a historical horizon using a varying number of sketch components, according to an embodiment of the invention.

FIG. 9 depicts an estimation of a signal at a single time stamp, using a varying number of sketch components, according to an embodiment of the invention.

FIG. 10 illustrates a difference in signals between two sensors over a historical horizon using a varying number of sketch components, according to an embodiment of the invention.

FIG. 11 depicts an average estimation over a historical horizon using a varying level of aggregation, according to an embodiment of the invention.

FIG. 12 illustrates an abnormal signal estimation over a historical horizon using a varying level of aggregation, according to an embodiment of the invention.

FIG. 13 illustrates an estimation of a signal at a single time stamp, using a varying level of aggregation, according to an embodiment of the invention.

FIG. 14 depicts a difference in signals between two sensors over a historical horizon using a varying level of aggregation, according to an embodiment of the invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Exemplary embodiments of the invention as described herein generally include systems and methods for historical analysis of large sensor networks. Accordingly, while the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the invention to the particular forms disclosed, but on the contrary, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

According to an embodiment of the invention, a hierarchically organized sensor network is provided. At the top level of the hierarchy is the global coordinator node, which receives data from lower level intermediate nodes. These intermediate nodes may themselves be leader nodes for other lower level nodes or sensor nodes. The ancestor of a node i in the hierarchy is denoted by Parent(i). The set of descendents of a given node are denoted by Desc(i). The set of leaf descendents of a given node are the lowest level sensor nodes under it, and are denoted by LeafDesc(i).

For presentation purposes, it is assumed that node i at the lowest level of the hierarchy receives a signal Y(i,t) at time stamp t. Some examples of relevant queries for a sensor network system are as follows:

-   -   For a given time horizon of length h, determine the average         signal value for a given sensor node.     -   For a given time horizon of length h, determine the number of         abnormally large signal occurrences in a given set of sensors.     -   For a given historical time instant, determine the exact signal         value.     -   For a given time horizon of length h, determine the distance in         the signal between two sensor nodes.

Note that some of the queries are posed for specific historical horizons or at specific historical instants. Other queries may compute functions over a set of stream sensors, or may try to extract a function on a single sensor with the use of an aggregated sketch at the higher level. Therefore, a mechanism should be constructed to store the data in such a way that the relevant sketch behavior can be extracted. Considerations for construction of the distributed synopsis involve several tradeoffs:

-   -   For a given query, one would like to resolve it at higher levels         of the tree, so as to minimize the communication costs at lower         level nodes.     -   It is desired to maximize the aggregation at different levels of         the hierarchy, so as to minimize the total storage and         communication at higher levels.

Quantization of Sensor Signals

Since most sensor applications are deployed in the context of known physical phenomena, the normal statistical behavior of the signals can often be measured and stored a-priori. Let μ be the mean of a particular signal, and σ be the corresponding standard deviation. A first step is to construct a normalized signal z_(i)(t) for node i for each interval value Y(i,t) using the following relationship:

${z_{i}(t)} = {\frac{\left( {{Y\left( {i,t} \right)} - \mu} \right)}{\sigma}.}$

The value of z_(i)(t) will lie in a small range most of the time. For arbitrary distributions, the Chebychev inequality implies that the probability of |z_(i)(t)| being larger than k is less than 1/k². For each sensor node i, the normalized signals are quantized through the range [−a, a], where an exemplary, non-limiting value of a is about 3. For each sensor node, the signal is quantized into φ−2 intervals of equal length. Values outside the range [−a, a] are quantized into two separate intervals. In general, the value of a should be chosen such that none (or very few) of the sensor signals lie outside the range [−a, a]. Thus, a total of φ intervals are constructed for each signal at a sensor node.

Signal Reception and Communication

At each clock tick, one first determines an interval of a sensor signal, referred to herein below as a bucketid, from the quantization. This bucketid is drawn from the range [1, φ]. It is used to send a (tickid,bucketid) pair to the node at the next higher level. While it would seem that a sensor measurement needs to be sent at each tick, it is possible to reduce communication costs further. The (tickid,bucketid) pair is sent only if the bucketid has changed since the last tick. Otherwise the sensor reading is implicitly set to that at the last tick. In many stable applications, sensor measurements change only gradually over time. Therefore, for most ticks, no communication may need to be sent by the sensor nodes. This is a useful saving, since sensor nodes are usually highly constrained by battery costs. According to an embodiment of the invention, each sensor node communicates to its next higher level leader nodes.

A given leader node may receive communication from a large number of sensor nodes. At higher level nodes, a list of triplets (tickid,sensorid,bucketid) can be sent to the next higher level. The sending of the additional information corresponding to the sensorid is necessary in order to identify the node whose signal bucket is currently being updated. For a given node, one only needs to send the data for a subset of the sensor nodes, which are descendents of the given node. As in the previous case, one needs to communicate the triplets only for those nodes for which the bucket identifier has changed since the last tick.

According to an embodiment of the invention, a temporal adaptation of the sequence

$F_{k} = {n{\sum\limits_{j = 1}^{\;}m_{i}^{k}}}$

where k≧0, m_(i)=|{j:a=i}| is the number of occurrences in a sequence A=(a₁, . . . ,a_(m)) whereas a_(i)ε{1, . . . ,n}, is used in conjunction with a specific temporal pattern of storage which is referred to herein below as a pyramidal time frame. A random variable r_(it) ^(j) is associated with each sensor node i and time instant (tick) t. The index j refers to independently drawn instantiations of the random variable, and is required to construct different components of the sketch. Each random variable is drawn from {−1,1} using a pseudo-random number generator.

For each signal value w=z_(i)(t) in {1, . . . ,φ}, the bit b_(wit) in {0, 1} represents the state of sensor node i for bucket w and time t. The value of b_(wit) is 1 for only one value of w in {1, . . . ,φ} (and fixed (i,t)). For each internal node k and w in {1, . . . ,φ}, the sketch S _(wkt)=(S_(wkt) ¹, . . . ,S_(wkt) ^(n)) is maintained for the n descendent leaf nodes of k. The component S_(wkt) ^(j) of the sketch is defined as follows:

$\begin{matrix} {S_{wkt}^{j} = {\sum\limits_{i \in {{LeafDesc}{(k)}}}{\sum\limits_{q = 1}^{i}{b_{wiq} \cdot {r_{iq}^{j}.}}}}} & (1) \end{matrix}$

For each node k, n·k sketch components are maintained for each of the quantized ranges w in {1, . . . ,φ}. Thus, there are a total of n·k·φ sketch components. The value of n·k influences the guarantees on the accuracy of the prediction, discussed in greater detail below. Note that the immediate sketches for the lowest level sensor includes should be stored at the parent nodes, because of the very limited memory and storage available at the lowest level. The sketches for all other nodes are stored directly at the node itself.

Temporal Storage Patterns

One issue is the choice of temporal storage of sketch snapshots, useful for querying over user-driven time horizons. One useful property of sketches is the subtractive property, defined as follows. Consider a data stream with sketches S _(wkt) ₁ and S _(wkt) ₂ at times t₁ and t₂ respectively. Then, a horizon specific segment sketch SS _(wk) (t₁,t₂) of the stream segment over the period (t₁, t₂) is given by:

SS _(wk)(t ₁ ,t ₂)= S _(wkt) ₂ − S _(wkt) ₁ .   (2)

The above observation can be easily inferred from the decomposable way in which the sketches are defined in EQ. (1). This property allows the construction of sketch representations for particular horizons of the data stream. Of course, it is necessary to have stored the sketch at times t₁ and t₂ in order to construct the segment sketch. Therefore, the historical snapshots of the sketch need to be stored in order to facilitate segment-wise analysis. While a natural solution is to store the sketch snapshot at evenly spaced intervals, this can be impractical for a sensor application which may run continuously over long periods of time.

It is noted that many queries are often posed over a historical horizon of the data stream. Ideally, one would like to obtain a historical sketch of a horizon which is as close to the target horizon as possible. For this purpose, a pyramidal pattern of storage of the sketch snapshots is used. Of course, the sketch of the current time instance is always maintained dynamically in main memory. The pyramidal storage pattern is defined by constructing a set of levels across which the snapshots are stored. These levels are defined and stored as follows:

-   -   For a user-defined parameter a>1, snapshots at level i are         stored at clock times which are divisible by a^(i);     -   For a user-defined integer parameter l, the last a¹ snapshots of         each level are retained at any moment in time.         There can be overlap between snapshots at different levels, if         l>0. In such cases, duplicates are eliminated to maximize         storage efficiency. The following observations are noted:     -   At clock time T, the total number of levels is log_(a)(T).     -   At clock time T, the total number of snapshots is at most         a¹·log_(a)(T).         The sketch can then be used for query estimations.

QUERY EXAMPLES

Query 1: For a given time horizon of length h, determine the number of abnormally large signal occurrences in a given part of the hierarchy (descendents of internal node k).

It can be assumed that the threshold for the abnormally large signal occurrences is one of the division points of the quantization process. For modest values of φ, this assumption continues to remain practical. Otherwise, it is possible to perform some extrapolation within a given bucket. Let M⊂{1, . . . ,φ} be the set representing unreasonably large absolute values of the signal. Typically, M will contain the buckets in [1, φ₁] corresponding to the ranges with large negative values, and the buckets in [φ₂, φ] corresponding to the ranges with large positive values.

One would like to resolve the query using the data stored at internal node k, rather than pushing the query down to the sensor nodes. A first step is to use the subtractive property to construct the sketch for a horizon h′ which closely approximates the input horizon h. For the current time t_(c), the snapshot at t_(c)−h′ is the closest available snapshot to that at time t_(c)−h. Subsequently, linear extrapolation can be used to obtain to the correct horizon. Since h′ is extremely close to h, it follows that the boundary effects are relatively small from a practical point of view. The sketches SS _(wk)(t_(c)−h′,t_(c)) are constructed for all values of wεM . A sketch component SR _(k)(M,t_(c)−h′,t_(c)) specific to set M is constructed as follows:

$\begin{matrix} {{{\overset{\_}{SR}}_{k}\left( {M,{t_{c} - h^{\prime}},t_{c}} \right)} = {\sum\limits_{w \in M}{{\overset{\_}{SS}}_{wk}\left( {{t_{c} - h^{\prime}},t_{c}} \right)}}} & (3) \end{matrix}$

It can be shown that the expected number of signal ticks in M for all descendents of node k in time interval (t_(c)−h′,t_(c)) is given by the expected value of

(SR _(k) ^(j)(M,t _(c) −h′t _(c)))²,   (4)

where here the superscript j corresponds to a j^(th) random sample. The sketch component is sampled multiple time in order to improve reliability.

Query 2: Determine the number of abnormal signal occurrences at a given sensor node in the time horizon (t_(c)−h, t_(c)).

In this query, one is determining the number of abnormal signal ticks at a single node, potentially using the sketch at an internal node which uses an aggregated sketch across many signals. The query can in fact be resolved at any level of the sensor hierarchy. The tradeoff is that a resolution at a higher level node does not require pushing the query down to lower level nodes, thereby reducing communication. On the other hand, a resolution at a higher level node also requires a greater number of sketch components. To examine the number of sketch components required to resolve the query at an internal node k, one can perform the approximation in the range (t_(c)−h′,t_(c)) by using the closest snapshot (at clock time t_(c)−h′) from the target time t_(c)−h.

In order to perform the query estimation, a sketch derivative V^(j) is defined as follows:

$\begin{matrix} {V_{i}^{j} = {\sum\limits_{q = {t_{c} - h^{\prime}}}^{t_{c}}{{{SR}_{k}^{j}\left( {M,{t_{c} - h^{\prime}},t_{c}} \right)} \cdot r_{iq}^{j}}}} & (5) \end{matrix}$

It can be shown that the expected value of V_(i) ^(j) is the number of ticks a_(i) with abnormally large signal occurrences at sensor node i.

Query 3: Determine the number of signal occurrences lying between specific normalized thresholds in a given part of the hierarchy for the interval (t_(c)−h, t_(c)).

This query is not very different from the earlier query except that the set M may correspond to an arbitrary range rather than the normalized values which are large on an absolute basis. Therefore, the same techniques apply.

Query 4: Determine the bucketid for the signal at sensor node i at a specific historical time stamp t_(s), using only the historical sketches stored at ancestor node k.

This query presents a challenge since it represents an attempting to estimate the sensor reading at a particular time instant at any point in the entire history of the stream. Furthermore, answering the query involves extracting the sensor reading at a particular node using only the sketch at the ancestor of that node. This sketch is presumably aggregated over the different descendent leaf nodes. The pyramidal time frame helps estimate this reading quite well in many cases. The first step is to determine the snapshots of the finest granularity (h₁, h₂) which contain t_(s). Because of the way in which the pyramidal time frame is constructed, it is possible to find, given the current time stamp t_(c), two snapshots (h₁, h₂) such that t_(s)ε[h₁, h₂ ] and h₂−h₁≦max{1, (t_(c)−t_(s))/a¹}.

By examination of the behavior of snapshots with level j−l where l=└log_(a)(t_(c)−t_(s))┘, it can be shown that if j−l>0, then t_(s) lies between successive snapshots of this level, and the distance between successive snapshots of this level is at most (t_(c)−t_(s))/a^(l). On the other hand, if j−l≦0, then it is possible to find a snapshot exactly at t_(s).

In order to compute the correct bucketid for the sensor reading, one first computes the sketch derivative F_(j)(M, h₁, h₂, t_(s))=SR_(k) ^(j)(M,h₁,h₂)·r_(it) _(s) ^(j). Let V_(kw)(h₁, h₂, t_(s)) be the number of sensor descendents of node k, for which the corresponding sensor readings in [h₁, h₂] lie in bucket index w. Then,

$\begin{matrix} {{V_{kw}\left( {h_{1},h_{2}} \right)} = {\sum\limits_{i \in {{LeafDesc}{(k)}}}{\sum\limits_{q = h_{1}}^{h_{2}}b_{wiq}}}} & (6) \end{matrix}$

Then, when M is chosen to be {w} for some wε{1, . . . ,φ} the expected value of F^(j)({w}, h₁, h₂, t_(s)) is equal to b_(wit) _(s) . The variance of Fj({w}, h1, h2, ts) is equal to V_(kw)(h₁, h₂), the number of 1-bits for any sensor descendent of node k, which lie in bucket index w.

One can estimate the bucketid of a given sensor node at time t_(s) using the same strategy of picking the median of O(log(1/δ)) copies of the averages of O(V_(kr)(h₁, h₂)) sketch derivatives F^(j)({r}, h₁, h₂). In general V_(kr)(h₁, h₂) is the product of number of sensor nodes under k, and the average number of 1-readings in the interval [h₁, h₂] and bucketid w over all leaf nodes under k. Because of the behavior of the pyramidal time frame, the value of h₂−h₁ is quite small, and the number of sensor readings which lie in interval r is even smaller.

The increase in the value of V_(kr)(h₁, h₂) arises from the fact that node k may have a larger number of leaf descendents, if it is chosen at an upper level of the hierarchy. This reflects the natural tradeoff between pushing the query to a lower level node, or resolving the query at a higher level node with a larger number of sketch components. In general, this choice should be made depending upon the value of h₂−h₁ for that query. For a query with a small value of h₂−h₁, it may be resolved at a higher level node. Otherwise, the query may need to be pushed to a lower level node. In practice, the effectiveness of the query may be improved further, since it may often be acceptable to use an average of the signal values in the locality of t_(s). This is especially true when the value of (t_(c)−t_(s)) is large, since one does not typically desire to determine the signal at a particular time stamp in the distant history, but in the general locality of that period. In fact, if the average over a constant fraction f of the interval [h₁, h₂] is used, then the number of sketch components required is no longer dependent upon the length of [h₁, h₂], but upon 1/f.

Query 5: Determine the average signal value for a given sensor node i in the interval (t_(c)−h, t_(c)), using the data at its ancestor node k.

As in the previous cases, one uses the snapshot at time h′ which is closest to h. The average signal value for a given sensor node can be estimated by approximating the signal within each of the φ quantized intervals to be at the midpoint of the corresponding range. In fact, the mid point of the r^(th) range can be assumed to be Q_(r). Since it has already been described how to compute the number of signal occurrences within a particular range, the average signal value can be imputed from this. Then, an approximate sketch AS(t₁, t₂) of the signal can be constructed by aggregating over the different buckets. Therefore, an approximate composite sketch AS(thd 1,t₂) can be defined as follows:

$\begin{matrix} {{{\overset{\_}{AS}}_{k}\left( {t_{1},t_{2}} \right)} = {\sum\limits_{r = 1}^{\Phi}{{{\overset{\_}{SS}}_{rk}\left( {t_{1},t_{2}} \right)} \cdot {Q_{r}.}}}} & (7) \end{matrix}$

The sketch derivative P_(ik) ^(j) is defined as follows:

$\begin{matrix} {{P_{ik}^{j}\left( {{t_{c} - h^{\prime}},t_{c}} \right)} = {\left( {1/h^{\prime}} \right) \cdot {\sum\limits_{q = {t_{c} - h^{\prime}}}^{t_{c}}{{{AS}_{k}^{j}\left( {{t_{c} - h^{\prime}},t_{c}} \right)} \cdot {r_{iq}^{j}.}}}}} & (8) \end{matrix}$

It is easy to show that the expected value of P^(j)(t_(c)−h′, t_(c)) is equal to the average value of the signal. The variance can be shown to be equal to the sum of the second moments of the signals in descendent nodes of k. The above estimate of the variance implies that it is possible to obtain an ε-accurate result with probability at least 1−δ with O(K·log(1/δ)/ε²) sketch components, where K is equal to the sum of the second moments of the signal across the different nodes. Assuming that the second moments across different nodes is similar (on a normalized basis), the number of sketch components required scales approximately linearly with the number of descendent sensor nodes. This illustrates the tradeoff between resolving the query at a lower level sensor node by using greater communication, or by resolving the query at lower level sensor nodes.

Many other closely related historical queries can be constructed from the sketch. Some examples of straightforward extensions are as follows:

-   -   Determine the average value for an arbitrary historical interval         [h₁, h₂].     -   Reconstruct the time series in moving average form for a         user-defined smoothing window size W over the historical window         [h₁, h₂].

In many applications, moving average reconstructions of time series are more useful. For sketch applications, the use of the smoothing window of size W reduces the variance of the sketch by a factor of W, and therefore is also more efficient to estimate (with fixed bounds) by a factor of W.

Query 6: Determine the mean square distance in the signal between a pair of sensor nodes u and v for the interval (t_(c)−h, t_(c)), using the data at their common ancestor k.

This query can be resolved in a number of different ways. A straightforward method to resolve the query is to use the reconstruction of the individual points used in Query 5 for the corresponding horizon and compute the difference between the two series.

Other Queries: A number of other temporal queries are possible with the pyramidal sketch stored in this example. Since the approach is capable of estimating the value of any sensor reading over any time stamp, it is also possible to use the approach for estimating a variety of functions over different time horizons. Functions which are linearly separable and averaged are typically easier to estimate with this approach.

Sketch Construction

FIG. 1 is a flowchart of a method for the overall approach for sketch construction and query estimation, according to an embodiment of the invention. Referring now to the figure, in step 110, the sketch is constructed from the signal. This construction process is performed continuously at each tick. Thus, the sketch is continuously updated. Since the sketch is represented additively in terms of its components, the corresponding operations can be performed efficiently. A detailed description of step 110 is provided in FIG. 2. In step 120, the sketch is used in order to respond to queries. The process of responding to queries entails the construction of a sketch derivative for each query and then averaging the sketch derivative over multiple components of the sketch. In order to construct the sketch derivative, a differential sketch is created over a particular horizon with the use of the subtractive property of sketches. The use of multiple components increases the robustness of the estimation process. A detailed description of step 120 is provided in FIG. 3.

FIG. 2 is a flowchart of details for sketch estimation of step 110 of FIG. 1, according to an embodiment of the invention. The steps illustrated in FIG. 2 are repeated continuously for each data point as it comes in. In step 210, the signal received is normalized and transmitted to the next higher level. Recall that signal normalization refers to using the mean and standard deviation of the signal value in order to create a normalized value. Therefore, the mean and standard deviation of the signals are continuously tracked over time. In step 220, the bitwise discretization of the signal is constructed with buckets. In the bitwise discretization approach, a 0-1 bit is constructed at each tick which indicates the identity of the bucket that the corresponding signal might belong. In step 230, the sketch is constructed from bitwise discretization of the signal, as specified in EQ. (1). As each component of the sketch is updated, the corresponding update is made on disk.

FIG. 3 is a flowchart of details of query estimation of step 120 of FIG. 1, according to an embodiment of the invention. To perform the query estimation, the horizon-specific sketch is first constructed at step 310. This is done since the sketch corresponds to the entire history of the data stream and only a portion of the sketch which is relevant to a particular horizon need be extracted. To construct a horizon-specific sketch, the subtractive property is used. For example, consider the case of constructing the sketch over the horizon (h₁, h₂). Let S(h₁) be the sketch at time h₁, and S(h₂) be the sketch at time h₂. Then, the segment sketch over (h₁, h₂) is defined by S(h₂)−S(h₁), as specified by EQ. (2). A detailed description of step 310 is provided in FIG. 4. In step 320, the sketch derivative is constructed for a particular query. As discussed earlier, the process of derivative construction is query-specific. Once the sketch derivative is computed, this is averaged over multiple components in step 330.

FIG. 4 is a flowchart of details of determining a horizon specific sketch for a particular query of step 310 of FIG. 3, according to an embodiment of the invention. To construct the sketch-specific horizon (h₁, h₂), the sketches at time instants h₁ and h₂ are determined at step 410. Let S(h₁) be the sketch at the time snapshot h₁ and S(h₂) be the sketch at the time snapshot h₂. Then, the sketch over the horizon (h₁, h₂) is defined by S(h₂)−S(h₁). This subtraction process is performed in step 420. The remaining value is reported as the corresponding sketch over the horizon (h₁, h₂).

Embodiments of the present invention can be implemented in various forms of hardware, software, firmware, special purpose processes, or a combination thereof. In one embodiment, the present invention can be implemented in software as an application program tangible embodied on a computer readable program storage device. The application program can be uploaded to, and executed by, a machine comprising any suitable architecture.

FIG. 5 is a block diagram of an exemplary, non-limiting architecture for implementing a system for historical analysis of large sensor networks, according to an embodiment of the invention. Block 50 corresponds to a server at which the computations are performed. This server may be present within each sensor node, and may often not contain all the components presented here because of size constraints. The components presented here comprise one exemplary embodiment for query estimation. This is because in some cases the sensors may be small and may not contain a disk or a complete CPU. Nevertheless, a superset of the components which are required within a sensor node are presented. The server contains a CPU (51), main memory (52) and disk (53). The data which is collected by the sensor nodes is either stored in main memory (52) or disk (53). In the case of sensors, the storage ability of the sensor nodes is often limited. The computations in the sensor nodes are performed at the CPU (51). Since the sensor nodes are typically restricted in size, it is often the case that only certain kinds of computations, such as additive operations, can be performed at the sensor nodes.

Experimental Results

This section presents experimental results for a sketch-based approach according to an embodiment of the invention. An algorithm according to an embodiment of the invention was tested on a number of data sets collected from real sensor applications. The first pair of data sets was constructed from 54 sensors deployed in Intel Berkeley Research Labs. These data sets correspond to light and temperature readings from the sensors, and are denoted by Intel-L and Intel-H respectively. The second data set is the Chlorine Data Set generated by EPANET 2.0. This data stream contained 166 different sensor streams corresponding to chlorine readings at different junctions.

Since this approach is designed for historical diagnosis, different kinds of historical queries were tested with the use of the sketch based method.

-   -   The accuracy of the average function was tested for a particular         sensor over a given time horizon (t_(c)−h, t_(c)) using an         aggregate sketch over one or more sensors. This illustrated the         effectiveness of using a hierarchical approach in which the         sketch of the signal value was combined over different sensor         nodes. These tests illustrate the effectiveness of varying         levels of aggregation. This is a good indicator for the         effectiveness of the method at upper levels of the increasing         series size hierarchy. This approach was used for all queries         discussed below.     -   The accuracy of determining the number of sensor signals which         lie above a predefined threshold was computed. This query         determines the number of abnormal signal occurrences in a given         time horizon (t_(c)−h, t_(c))     -   The accuracy of computing the exact signal value at a given tick         was tested. This query is useful since it illustrates the         accuracy of completely reconstructing the signal over any user         driven horizon.     -   The accuracy of computing the L₂-difference between the signal         at different sensor nodes over a user-specified horizon was         tested.

Each dimension was quantized into  =61 ranges, and a pyramidal pattern of sketch maintenance was used with 32 snapshots per level. Since most queries require the determination of the median of averages, two parameters medc and meanc were used to determine the number of components in the sketch. The value of meanc determines the number of copies over which the average of the sketch derivative was determined, and the median medc of such averages was returned. Therefore, the total number of sketch components was meanc×medc. For many experiments, the values medc=3, and meanc=30 were used. Therefore, it is interesting to test the storage behavior of the pyramidal sketch with respect to the size of the original series itself. One of the characteristics of the pyramidal sketch is that since the number of snapshots increases logarithmically with the series size, the corresponding storage requirement also increases logarithmically.

FIG. 6 illustrates the storage requirement of a pyramidal sketch with increasing series size. The graph in the figure analytically derives an upper bound on the size of the pyramidal sketch with increasing series size. This upper bound is derived by multiplying an upper bound on the number of stored snapshots with the size of each sketch. The series size is illustrated on the X-axis and assumes 4-bytes of storage per series component, whereas the sketch size on the Y−axis assumes 4-bytes of storage per sketch component. The storage size increases only logarithmically with increasing series size. The series size on the X-axis is expressed in Gigabytes, whereas the corresponding sketch size is expressed only in Megabytes. In fact, even for a series of size up to 100 Gigabytes, the sketch size is less than 8.5 Megabytes. This result does not assume any compression across different sensor nodes. At higher level nodes the sketch from multiple sensor nodes are compressed together. In such cases, an additional compression factor is determined by the number of sensor nodes for which the signal is aggregated together. This is useful since the theoretical and experimental results will show that this sketch can be used for extensive historical analysis of the data stream.

Next, the quality of the estimations obtained with the use of the sketch components is discussed. FIG. 7 illustrates an average estimation over a historical horizon using a varying number of sketch components. This figure illustrates the accuracy of estimating the average value of the time series over a set of user defined horizons with lengths drawn randomly from the interval [1000, 2000]. The results were averaged over 20 such queries. In this case, the signal was aggregated over two sensor nodes. The X-axis illustrates the number of sketch components (meanc×medc), with medc fixed at 3. The Y-axis illustrates the error of estimation as a fraction of the entire range. The results are plotted for all three data sets. In each case, the accuracy increases with increasing number of sketch components. This is to be expected since the error of estimation is directly dependent upon the number of sketch components both theoretically and empirically. Furthermore, the use of a modest number of sketch components allows an error which is less than 1.5% of the entire range. In each case, the Intel-L data set showed the largest error. This was because of the wide variation in the light intensity signal at different times of the day. On the other hand, the Intel-H data set was much easier to estimate because of more stable variations of the humidity measurements.

FIG. 11 depicts an average estimation over a historical horizon using a varying level of aggregation. This figure demonstrates the effectiveness of computing the average function by varying the number of different sensors over which the signal is aggregated. As in the previous case, a horizon was used which was drawn from the interval [1000, 2000]. The results were averaged over 20 such queries. The number of signals aggregated is illustrated on the X-axis. In this case, the number of sketch components is fixed at 90 with medc=3. This graph illustrates the effectiveness of the method for varying levels of aggregation in a hierarchical scheme. In a hierarchical scheme, upper levels would contain a larger number of sensor signals aggregated together. It is clear that increasing levels of aggregation reduce the accuracy of the method. However, the results show that the level of degradation is relatively modest in most cases. It is evident from FIG. 11 that the error is restricted to 2% of the range, even when the sketch for 20 different sensor signals is aggregated together. This shows that one can work with highly compressed sketches at higher levels of the hierarchy without having to compromise on the accuracy.

FIG. 8 illustrates an abnormal signal estimation over a historical horizon using a varying number of sketch components. The graph of this figure illustrates the behavior of the sketch in terms of its accuracy of detecting the number of ticks (or timestamps) of signals which are larger than 1.5 standard deviations away from the mean of the signal. Thus, this kind of query is effective for detecting abnormal variations of the sensor signal within a given time horizon. As in the previous case, a horizon was used which was uniformly drawn from the range [1000, 2000]. The accuracy with increasing number of sketch components is illustrated in FIG. 8. As in the previous cases, a sketch aggregated over two sensors was used, but the abnormal signals are only counted over one of the sensors. In this case, the accuracy was defined as the difference between the true number of abnormal signals and the estimated number of abnormal signals, divided by the true number of abnormal signals. In this case, the percentage inaccuracy with increasing number of sketch components is reported. In most cases, one can obtain reasonably accurate results, with the percentage error being less than 4% in most cases. When a larger number of sketch components were used, the error was reduced to less than 1% in some cases. The same order of error was retained among the three data sets as in the previous case.

FIG. 12 illustrates an abnormal signal estimation over a historical horizon using a varying level of aggregation. This figure illustrates the accuracy of the method with increasing aggregation along different sensor nodes. Again, while the signal is aggregated over multiple sensors as represented by the value of the X-axis, the abnormal occurrences are counted only over one of the sensors. One can estimate the number of abnormal occurrences to within 6% of the true value. The fact that a high accuracy is retained over a larger number of sensors tends to suggest that it is possible to determine abnormal signals at higher level sensor nodes without having to push the signal down to the lower levels.

FIG. 9 depicts an estimation of a signal at a single time stamp, using a varying number of sketch components. This figure illustrates the error of estimation of a single data point in the stream. This is a challenging query since it implies effective reconstruction of any point in the entire data stream. As in the previous cases, the horizon was randomly chosen from the range [1000, 2000]. In this case, the error of estimation was expressed in terms of the percentage of time that the range of discretization interval picked was incorrect. The results from FIG. 9 show that the estimation error was less than 1% in most cases. This illustrates that the individual points in the data stream can be estimated to a very high degree of accuracy in most cases.

FIG. 13 illustrates an estimation of a signal at a single time stamp, using a varying level of aggregation. This figure illustrates the error with increasing levels of aggregation when the number of sketch components was fixed at 90. As in the previous cases, the system was able to estimate the accuracy even when the sketch for a larger number of sensor series were aggregated together. For practical applications, these accuracies can be improved upon further by the estimation of moving averages. This is especially true for points in the distant history of the stream. In the case of points in the distant history, the behavior of individual data points is not of interest, only moving averages over small contiguous lengths of the stream. In such cases, the estimation can be performed with a smaller number of sketch components, especially when the local variations over these contiguous lengths are small.

Finally, the effectiveness of estimating the L₂-distance function was tested. As in previous cases, a horizon in the range [1000, 2000] was used. The results are illustrated in FIG. 10. FIG. 10 illustrates a difference in signals between two sensors over a historical horizon using a varying number of sketch components. As in the case of the average function, the errors are reported as a fraction of the range of values for the data streams. Because of normalization, the range is the same for both data streams over which the L₂-difference is determined. In this case, the error is less than 1% of the range, even when a small number of sketch components are used.

FIG. 14 depicts a difference in signals between two sensors over a historical horizon using a varying level of aggregation. This figure illustrates the effectiveness of the method with increasing level of aggregation of the sketch across different sensor nodes. In this case, the error is bounded above by a fraction 7×10⁻³ of the range, and increases gradually with increasing levels of aggregation.

While the present invention has been described in detail with reference to a preferred embodiment, those skilled in the art will appreciate that various modifications and substitutions can be made thereto without departing from the spirit and scope of the invention as set forth in the appended claims. 

1. A method of querying a sensor network, said network being hierarchically organized sensor network with a global coordinator node at a top level which receives data from lower level intermediate nodes, said intermediate nodes being either leader nodes for lower level nodes or sensor nodes, wherein a sensor node i at a lowest level receives a signal Y(i,t) at time t, said method comprising the steps of: constructing a sketch S_(wkt)=(S_(wkt) ¹, . . . , S_(wkt) ^(n)) for an internal node k from ${S_{wkt}^{j} = {\sum\limits_{i \in {{LeafDescendents}{(k)}}}{\sum\limits_{q = 1}^{t}{b_{wiq} \cdot r_{iq}^{j}}}}},$ wherein component S_(wkt) ^(j) is a sketch of a descendent of node k, r_(it) ^(j) is a random variable drawn from {−1,1} associated with each sensor node i and time instant t wherein index j refers to independently drawn instantiations of the random variable, the bit b_(wit) in {0, 1} represents a state of sensor node i for signal value w=Y(i,t) at time t, and LeafDescendents(k) are the lowest level sensor nodes under node k, wherein said sketch is adapted for responding to queries regarding a state of said network.
 2. The method of claim 1, further comprising normalizing said signal for node i using ${{z_{i}(t)} = \frac{\left( {{Y\left( {i,t} \right)} - \mu} \right)}{\sigma}},$ wherein μ be the mean of said signal, and σ is the corresponding standard deviation.
 3. The method of claim 2, further comprising quantizing said normalized signal in a range [−a, a] into φ−2 intervals of equal length, and quantizing values outside the range [−a, a] into two separate intervals, for a total of φ intervals, wherein bit b_(wit) is 1 for only one value of z_(i)(t) in {1, . . . ,φ}, and wherein bucketed identifies an interval in said range.
 4. The method of claim 3, wherein a leaf node communicates a (tickid, bucketid) pair to a next higher level node at a time stamp tickid if bucketed of said received signal Y(i,t) has changed since a previous time stamp, and an intermediate level node communicates a triplet (tickid, sensorid, bucketid) for those nodes for whom bucketid has changed since the previous time stamp, wherein sensorid identifies the node whose bucketid is being updated.
 5. The method of claim 1, comprising storing a historical snapshot of said sketch in a pyramidal storage pattern wherein snapshots for a level i are stored at clock times which are divisible by a^(i) for a pre-defined parameter a>1, and a last a¹ snapshots of each level are retained at any moment in time, for a pre-defined integer parameter l.
 6. The method of claim 3, further comprising forming a horizon specific segment sketch SS_(wk)(t₁,t₂) over a time period (t₁, t₂) from SS_(wk)(t₁,t₂)=S_(wkt) ₂ −S_(wkt) ₁ wherein S_(wkt) ₁ and S_(wkt) ₂ are sketches computed at times t₁ and t₂, respectively, and summing said segment sketch SS_(wk)(t₁,t₂) over a set M⊂{1, . . . ,φ} containing selected absolute values of said signal to obtain ${{SR}_{k}\left( {M,t_{1},t_{2}} \right)} = {\sum\limits_{w \in M}{{{SS}_{wk}\left( {t_{1},t_{2}} \right)}.}}$
 7. The method of claim 6, further comprising calculating an expected value of (SR_(k) ^(j)(M,t₁,t₂))² to find an expected number of signals in M for all descendents of node k in time interval (t₂,t₁).
 8. The method of claim 6, further comprising calculating a sketch derivative V^(j) from ${V^{j} = {\sum\limits_{q = {t_{c} - h^{\prime}}}^{t_{c}}{{{SR}_{k}^{j}\left( {M,t_{1},t_{2}} \right)} \cdot r_{q}^{j}}}},$ and calculating an expected value of V^(j) to determine a number of ticks a_(i) with abnormally large signal occurrences at sensor node i.
 9. A method of querying a sensor network, said network being hierarchically organized sensor network with a global coordinator node at a top level which receives data from lower level intermediate nodes, said intermediate nodes being either leader nodes for lower level nodes or sensor nodes, wherein a sensor node i at a lowest level receives a signal Y(i,t) at time t, said method comprising the steps of: receiving a query regarding a state of said sensor network, said query includes one or more of a time period, one nor more sensor identifiers, and a signal value range; calculating a difference of sketch values evaluated at a beginning and an end of said time period, said sketch for a node k being an n-tuple representative signals received at past times for lower level sensors nodes of node k; summing said difference of sketch values over a set of signal values, wherein said resulting segment sketch component is adapted to responding to said query.
 10. The method of claim 9, further comprising constructing sketch S_(wkt)=(S_(wkt) ¹, . . . ,S_(wkt) ^(n)) for internal node k from ${S_{wkt}^{j} = {\sum\limits_{i \in {{LeafDescendents}{(k)}}}{\sum\limits_{q = 1}^{t}{b_{wiq} \cdot r_{iq}^{j}}}}},$ wherein component S_(wkt) ^(j) is a sketch of a descendent of node k, r_(it) ^(j) is a random variable drawn from {−1,1} associated with each sensor node i and time instant t wherein index j refers to independently drawn instantiations of the random variable, the bit b_(wit) in {0,1} represents a state of sensor node i for signal value w=Y(i,t) at time t, and LeafDescendents(k) are the lowest level sensor nodes under node k.
 11. The method of claim 10, wherein said signal for node i is normalized according to ${{z_{i}(t)} = \frac{\left( {{Y\left( {i,t} \right)} - \mu} \right)}{\sigma}},$ wherein μ is the mean of said signal, and σ is the corresponding standard deviation, and said normalized signal is quantized over a range [−a, a] into φ−2 intervals of equal length, and quantizing values outside the range [−a, a] into two separate intervals, for a total of φ intervals, wherein bit b_(wit) is 1 for only one value of z_(i)(t) in {1, . . . , φ}.
 12. The method of claim 11, wherein said difference of sketch values SS_(wk) (t₁,t₂) over time period (t₁, t₂) is calculated from from SS_(wk)(t₁,t₂)=S_(wkt) ₂ −S_(wkt) ₁ wherein S_(wkt) ₁ and S_(wkt) ₂ are sketches computed at times t₁ and t₂, respectively, and said segment sketch component SS_(wk)(t₁,t₂) is summed over a set M ⊂{1, . . . ,φ} containing selected absolute values of said signal to obtain ${{SR}_{k}\left( {M,t_{1},t_{2}} \right)} = {\sum\limits_{w \in M}{{{SS}_{wk}\left( {t_{1},t_{2}} \right)}.}}$
 13. The method of claim 9, wherein said query comprises determining an average signal value over a given time period.
 14. The method of claim 9, wherein said query comprises determining a number of abnormal signal occurrences over a given time period.
 15. The method of claim 9, wherein said query comprises determining a number of signal occurrences between predetermined thresholds in a subset of said network over a given time period.
 16. The method of claim 9, wherein said query comprises determining a mean square distance in a signal between a pair of sensor nodes using data from a common ancestor node.
 17. A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform the method steps for querying a sensor network, said network being hierarchically organized sensor network with a global coordinator node at a top level which receives data from lower level intermediate nodes, said intermediate nodes being either leader nodes for lower level nodes or sensor nodes, wherein a sensor node i at a lowest level receives a signal Y(i,t) at time t, said method comprising the steps of: constructing a sketch S_(wkt)=(S_(wkt) ¹, . . . , S_(wkt) ^(n)) for an internal node k from ${S_{wkt}^{j} = {\sum\limits_{i \in {{LeafDescendents}{(k)}}}{\sum\limits_{q = 1}^{t}{b_{wiq} \cdot r_{iq}^{j}}}}},$ wherein component S_(wkt) ^(j) is a sketch of a descendent of node k, r_(it) ^(j) is a random variable drawn from {−1,1} associated with each sensor node i and time instant t wherein index j refers to independently drawn instantiations of the random variable, the bit b_(wit) in {0,1} represents a state of sensor node i for signal value w=Y(i,t) at time t, and LeafDescendents(k) are the lowest level sensor nodes under node k, wherein said sketch is adapted for responding to queries regarding a state of said network.
 18. The computer readable program storage device of claim 17, wherein said signal for node i is normalized according to ${{z_{i}(t)} = \frac{\left( {{Y\left( {i,t} \right)} - \mu} \right)}{\sigma}},$ wherein μ is the mean of said signal, and σ is the corresponding standard deviation, and said normalized signal is quantized over a range [−a, a] into φ−2 intervals of equal length, and quantizing values outside the range [−a, a] into two separate intervals, for a total of φ intervals, wherein bit b_(wit) is 1 for only one value of z_(i)(t) in {1, . . . ,φ}.
 19. The computer readable program storage device of claim 18, wherein the method further comprises forming a horizon specific segment sketch SS_(wk)(t₁,t₂) over a time period (t₁, t₂) from SS_(wk)(t₁,t₂)=S_(wkt) ₂ −S_(wkt) ₁ wherein S_(wkt) ₁ and S_(wkt) ₂ are sketches computed at times t₁ and t₂, respectively, and summing said segment sketch SS_(wk)(t₁,t₂) over a set M⊂{1, . . . ,φ} containing selected absolute values of said signal to obtain ${{{SR}_{k}\left( {M,t_{1},t_{2}} \right)} = {\sum\limits_{w \in M}{{SS}_{wk}\left( {t_{1},t_{2}} \right)}}},$ and calculating a sketch derivative V^(j) from ${V^{j} = {\sum\limits_{q = {t_{c} - h^{\prime}}}^{t_{c}}{{{SR}_{k}^{j}\left( {M,t_{1},t_{2}} \right)} \cdot r_{q}^{j}}}};$
 20. The computer readable program storage device of claim 19, wherein the method further comprises calculating an expected value of (SR_(k) ^(j)(M,t₁,t₂)) to find an expected number of signals in M for all descendents of node k in time interval (t₂,t₁), and calculating an expected value of V^(j) to determine a number of ticks a_(i) with abnormally large signal occurrences at sensor node i. 